package opf5.casosDeUso;

import java.util.ArrayList;
import java.util.List;

import opf5.entities.dominio.Jugador;
import opf5.entities.repositorios.RepositorioJugadores;

public class Login {
	List<LoginObserver> observers = new ArrayList<LoginObserver>();
	RepositorioJugadores repositorioJugadores;
	private Jugador jugador;
	
	public Login(RepositorioJugadores repositorioJugadores) {
		this.repositorioJugadores = repositorioJugadores;
	}
	
	public void loginUsuario(String idUsuario) {
		jugador = repositorioJugadores.getJugadorPorId(idUsuario);
		notificarLogin();
	}

	private void notificarLogin() {
		for (LoginObserver o : observers) {
			o.login(jugador);
		}
	}

	public void agregarObserver(LoginObserver observer) {
		observers.add(observer);
	}

	public void logoutUsuario() {
		jugador = null;
		notificarLogout();
	}

	private void notificarLogout() {
		for (LoginObserver o : observers) {
			o.logout();
		}
	}

}
